#ifndef _LEVEL_H
#define _LEVEL_H

#include <list>
using namespace std;

class Source;
class Rect;
class Platform;
class Slope;
class Zomby;
class Fx;
class Circle;
class Projectile;
class Kolobok;
class Cloud;
class Respawn;
struct Polygon2;
class Bird;

class Level{
public:

	Level();
	~Level();

	Rect* rect;
	Rect* sky;
	Source* src_win;	
	Platform* finish;

	int layers;
	int r_xLo_yLo, r_xLo_yHi, r_xHi_yHi, r_xHi_yLo;
	int g_xLo_yLo, g_xLo_yHi, g_xHi_yHi, g_xHi_yLo;
	int b_xLo_yLo, b_xLo_yHi, b_xHi_yHi, b_xHi_yLo;

	float deadline;
	float player_position_x, player_position_y;
	int player_layer;
	float gravity;

	Platform** platforms;
	int platforms_num;

	Platform** floors;
	int floors_num;

	Respawn** respawns;
	int respawns_num;

	list<Slope*> slopes;
	list<Slope*> slopes2;
	list<Zomby*> zombies;
	list<Fx*> effects;
	list<Platform*> items;
	list<Platform*> images;
	list<Circle*> circles;
	list<Source*> sources;
	list<Projectile*> projectiles;
	list<Kolobok*> koloboks;
	list<Cloud*> clouds;
	list<Polygon2*> polygons;
	list<Bird*> birds;

	int max_zombies;

//	Coffin* coffin;
};

#endif